package modes

import "fmt"

/*
 * 描述: 班型表
 *
 * Status 状态  0 启用  1 禁用
 * UpgRade 0不升级 1升级
 *****************************/

type TeachClass struct {
	Id        int64  `json:"c_id" xorm:"id"`               //班型ID
	PId       int64  `json:"c_pid" xorm:"pid"`             //项目ID
	Name      string `json:"c_name" xorm:"name"`           //班型名称
	Price     int64  `json:"c_price" xorm:"price"`         //班型价格
	Status    int    `json:"c_status" xorm:"status"`       //状态
	At        int64  `json:"c_at" xorm:"at"`               //时间
	Start     int64  `json:"c_start" xorm:"start"`         //报班时间
	End       int64  `json:"c_end" xorm:"end"`             //结束时间
	Coun      int64  `json:"c_coun" xorm:"coun"`           //当前报名学员
	ThisId    int64  `json:"c_thisid" xorm:"this_id"`      //当前续费ID
	UpgRade   int    `json:"c_upgrade" xorm:"upgrade"`     //是否升级版
	ValidTerm int    `json:"valid_term" xorm:"valid_term"` // 班型有效期(后端存储单位:月)

}

func (this *TeachClass) TableName() string {
	return "class"
}

func (this *TeachClass) Get() (bool, error) {
	return Db(1).Get(this)
}

func (this *TeachClass) StudenCount(id, coun int64) error {
	sql := fmt.Sprintf("UPDATE class SET coun = coun + %d WHERE id = %d", coun, id)
	_, err := Db(1).Exec(sql)
	return err
}
func (this *TeachClass) GetListByIdList(idList []int64) ([]TeachClass, error) {
	list := make([]TeachClass, 0)
	err := Db(0).Table("class").In("id", idList).Limit(100).Find(&list)
	return list, err
}
